package com.promotores;

import java.util.ArrayList;
import java.util.EventObject;
import java.util.List;

import com.promotores.util.Parametros;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.Toast;

public class ActivityListarEventos extends Activity implements OnItemClickListener, OnClickListener {
	ListView lista;
	String flag;
	int tipoEvento;
	int subtipoEvento;
	ImageButton buscar;
	Integer aux;
	GestorEvento dbEvento;
	List<BeanEvento> lstEventosFinal;
	/**
	 * @see android.app.Activity#onCreate(Bundle)
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		flag = getIntent().getStringExtra("flag");
		//subtipoEvento = Integer.parseInt(getIntent().getStringExtra("subtipoEvento"));
		
		setContentView(R.layout.pr_lista_eventos);
		aux = flag.trim().compareTo("PRE");
		lista = (ListView) findViewById(R.id.lvEventos);
		
//		JsonEvento jsonEvento = new JsonEvento();
//		List<BeanEvento> auxLstEventos;
//		auxLstEventos = jsonEvento.dameEventos(subtipoEvento);
		
		dbEvento = new GestorEvento(this);
		AdapterEvento adapter = new AdapterEvento(null, this);
		
		List<BeanEvento> auxLstEventosAdapter = new ArrayList<BeanEvento>();
		String auxTipoEvento = getIntent().getStringExtra("tipoEvento");
		
		if (auxTipoEvento.compareTo("")==0){
			String auxEvento = getIntent().getStringExtra("buscaEvento");
			if (aux == 0){
				//adapter = new AdapterEvento(dbEvento.getEventobyFiltro("1",auxEvento), this);
				auxLstEventosAdapter=dbEvento.getEventobyFiltro("1",auxEvento);
			}
			else if (aux != 0){
				//adapter = new AdapterEvento(dbEvento.getEventobyFiltro("2",auxEvento), this);
				auxLstEventosAdapter=dbEvento.getEventobyFiltro("2",auxEvento);
			}
		}
		else {	
			tipoEvento = Integer.parseInt(getIntent().getStringExtra("tipoEvento"));
			
			if (aux == 0){
				//adapter = new AdapterEvento(dbEvento.getAllEventoPendienteAprobacion(tipoEvento), this);
				auxLstEventosAdapter=dbEvento.getAllEventoPendienteAprobacion(tipoEvento);
			}
			else if (aux != 0){	
				//adapter = new AdapterEvento(dbEvento.getAllEventoPreAprobado(tipoEvento), this);
				auxLstEventosAdapter=dbEvento.getAllEventoPreAprobado(tipoEvento);
			}
		}
		
		lstEventosFinal = new ArrayList<BeanEvento>();
//		for (int i=0; i<auxLstEventos.size(); i++)
//			for (int j=0; j<auxLstEventosAdapter.size(); j++)
//				if (auxLstEventos.get(i).getId()==auxLstEventosAdapter.get(j).getId())
//					lstEventosFinal.add(auxLstEventosAdapter.get(j));
		
		if (Parametros.getLstUser_type_events()!=null){
			for (int i=0; i<auxLstEventosAdapter.size(); i++)
				for (int j=0; j<Parametros.getLstUser_type_events().size(); j++)
					if (auxLstEventosAdapter.get(i).getIdSubTipoEvento()==
							Parametros.getLstUser_type_events().get(j).getId())
						lstEventosFinal.add(auxLstEventosAdapter.get(i));
		}
		//lstEventosFinal = auxLstEventosAdapter;
		adapter = new AdapterEvento(lstEventosFinal, this);
		lista.setAdapter(adapter);
		lista.setOnItemClickListener(this);
		buscar = (ImageButton)findViewById(R.id.btnBuscarEvento);        
        buscar.setOnClickListener(this);
        ImageButton offline = (ImageButton)findViewById(R.id.imgOfflineMode);
        offline.setOnClickListener(this);
        if (Parametros.isOffline_mode()){
        	offline.setVisibility(View.VISIBLE);
        }
	}
	
	@Override
	public void onClick(View v) {
		if (v.getId() == R.id.btnBuscarEvento){
			//Intent intent = new Intent();			
			aux = flag.trim().compareTo("PRE");
			AdapterEvento adapter = new AdapterEvento(null, this);
			String auxEvento = ((EditText)findViewById(R.id.txtNombEvento)).getText().toString();
			if (auxEvento.compareTo("")!=0){
				if (aux == 0){
					//intent.setClass(this, ActivityPreAprobarEvento.class);
					adapter = new AdapterEvento(dbEvento.getEventobyFiltro("1",auxEvento), this);
				}
				else if (aux != 0){
					//intent.setClass(this, ActivityAprobarEvento.class);
					adapter = new AdapterEvento(dbEvento.getEventobyFiltro("2",auxEvento), this);
				}
				lista.setAdapter(adapter);
			}
			//startActivity(intent);
		}
	}
	
	@Override
	public void onItemClick(AdapterView<?> adapter, View arg1, int position, long arg3) {
		BeanEvento evento = (BeanEvento)adapter.getItemAtPosition(position);
		//acá ya se obtiene todo el objeto tipo evento. faltaría agregar la funcionalidad
		Intent intent = new Intent();
		if (aux == 0)
			intent.setClass(this, ActivityPreAprobarEvento.class);
		else if (aux != 0)
			intent.setClass(this, ActivityAprobarEvento.class);
		intent.putExtra("idEvento", String.valueOf(evento.getId()));
		startActivity(intent);
	}
	
	@Override
	public void onResume(){
		super.onResume();
		if (Parametros.isOffline_mode()){
			ImageButton offline = (ImageButton)findViewById(R.id.imgOfflineMode);
			offline.setVisibility(View.VISIBLE);
			offline.invalidate();
        }
	}
}